package com.toubutu.audio.admin.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.toubutu.audio.admin.dto.PermissionDto;
import com.toubutu.audio.admin.dto.RoleBindPermissionVo;
import com.toubutu.audio.admin.entity.Permission;
import com.toubutu.audio.admin.vo.PermissionVo;


import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 戒燥
 * @since 2023-09-30
 */
public interface PermissionService extends IService<Permission> {

    /**
     *获取角色绑定的权限树形结构
     * @return List<RoleBindMenuVo>
     */
    List<RoleBindPermissionVo> getMenuForRoleBindTree();

    /**
     * 获取权限列表树
     */
    List<PermissionVo> getPermissionTree();

    /**
     * 获取权限信息
     * @param permissionId 权限id
     */
    PermissionVo getPermissionInfo(Integer permissionId);

    /**
     * 添加权限信息
     * @param permissionDto 权限信息
     */
    Boolean addPermission(PermissionDto permissionDto);

    /**
     * 更新权限信息
     * @param permissionDto 权限信息
     */
    Boolean updatePermission(PermissionDto permissionDto);

    /**
     * 删除权限信息
     * @param permissionId 权限id
     */
    Boolean deletePermission(Integer permissionId);


    List<String> getPermissionListByRoleIds(List<Integer> roleId);
}
